import { baseUrl,post } from '@/common/utils/request'; // 直接引入已定义的 baseUrl

// 1. 图片上传接口（复用 baseUrl，对齐后端路径）
const uploadImage = (tempFilePath, sessionId) => {
	const token = uni.getStorageSync('token');
	const retoken = uni.getStorageSync('retoken');
  return new Promise((resolve, reject) => {
    uni.uploadFile({
      // 直接使用 baseUrl + 接口路径（无需 getBaseUrl()）
      url: `${baseUrl}/api/ai/upload/image`, 
      filePath: tempFilePath,
      name: 'file', // 和后端 @RequestParam("file") 一致
      formData: {
        sessionId: sessionId
      },
	  header:{
		  authorization: 'Bearer ' + token,
		  retoken : 'Bearer ' + retoken
	  },
      success: (res) => {
        try {
          const result = JSON.parse(res.data);
          // 后端 ResultMessage 格式：{code:200, data:"图片URL", message:"成功"}
          if (result.code === 200 && result.data) {
            resolve(result.data); // 返回图片URL
          } else {
            reject(new Error(result.message || '图片上传失败'));
          }
        } catch (e) {
          reject(new Error('图片上传响应解析失败'));
        }
      },
      fail: (err) => {
        reject(new Error(`上传接口调用失败: ${err.errMsg}`));
      }
    });
  });
};

// 2. AI流式对话接口（适配小程序，复用 baseUrl）
const AIStream = (data) => {
  // 接口地址 + 传递实时数据
  let res= post('/api/ai/stream', data);
  return res;
};
// const AIStream = (data) => {
//   return new Promise((resolve, reject) => {
//     let streamData = ''; 
//     const requestTask = uni.request({
//       url: `${baseUrl}/api/ai/stream`, 
//       method: 'POST',
//       data: data,
//       responseType: 'text', 
//       onChunkReceived: (res) => {
//         if (res.data) {
//           streamData += res.data;
//           // 优化：只打印非空分片，避免太多空日志
//           console.log('当前分片内容:', res.data);
//         }
//       },
//       success: (res) => {
//         // 新增：打印完整的累计数据，看是否包含所有分片
//         console.log('所有分片累计结果:', streamData);
//         resolve({ data: streamData, statusCode: res.statusCode });
//       },
//       fail: (err) => {
//         console.error('流式请求失败:', err);
//         reject(new Error(`流式接口调用失败: ${err.errMsg}`));
//       }
//     });
//     return { abort: () => requestTask.abort() };
//   });
// };

export { AIStream, uploadImage };